package com.example.mymessagequeue.mqserver.core;

import java.io.Serializable;

/**
 * 消息的属性
 */
public class BasicProperties implements Serializable {

    // 消息的唯一身份标识, 使用 UUID
    private String messageId;

    // 是一个消息上带有的内容, 和 bindingKey 做匹配
    // 如果当前交换机的类型是 DIRECT, 这里的 routingKey 表示要转发的队列名
    // 如果当前交换机的类型是 FANOUT, 这里的 routingKey 无意义(不使用)
    // 如果当前交换机的类型是 TOPIC,  这里的 routingKey 和 bindingKey 做匹配, 符合要求才能转发给对应的队列
    private String routingKey;

    // 这个属性表示消息是否要持久化, 1 不持久化, 2 表示持久化(RabbitMQ)
    private int deliverMode = 1;

    // ...


    public String getMessageId() {
        return messageId;
    }

    public void setMessageId(String messageId) {
        this.messageId = messageId;
    }

    public String getRoutingKey() {
        return routingKey;
    }

    public void setRoutingKey(String routingKey) {
        this.routingKey = routingKey;
    }

    public int getDeliverMode() {
        return deliverMode;
    }

    public void setDeliverMode(int deliverMode) {
        this.deliverMode = deliverMode;
    }

    @Override
    public String toString() {
        return "BasicProperties{" +
                "messageId='" + messageId + '\'' +
                ", routingKey='" + routingKey + '\'' +
                ", deliverMode=" + deliverMode +
                '}';
    }
}
